package anaydis.animation.core;

import com.sun.istack.internal.NotNull;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public interface AnimationController
        extends ChangeListener, ActionListener, ItemListener
{
    @NotNull Dimension getDisplayAreaSize();

    void repaint();

    void end();

    void pause();

    void stateChanged(ChangeEvent e);

    void actionPerformed(ActionEvent e);

    void itemStateChanged(ItemEvent e);

    public final static String RUN_COMMAND = "RUN";

    public final static String STOP_COMMAND = "STOP";

    public final static int MAX_SPEED = 20;
}